 var fs=require("fs");

/*
* 异步打开文件：
*   fs.open("./1.txt","r",function (err,fd) {
*          console.log(fd);//3
*        });
*  fs.open("./1.txt","r",function (err,fd) {
*       console.log(fd);//4
*       });
* */


/*
*   同步打开文件
*   fs.openSync(path,flags,mode);
*    var data=fs.openSync("1.txt","r");
    console.log(data);
* */

/*
     fs.read(fd,buffer,offset,length,position,callback)  异步读取文件。
 fs.open("./1.txt","r",function (err,fd) {
     if(err){
         throw  err;
     } else{
         /!*读取文件*!/
         var buf=Buffer.alloc(14);
         fs.read(fd,buf,0,14,null,function (err2, bytesRead, buffer) {
             console.log(err2);
             console.log(bytesRead);
             console.log(buffer.toString("utf-8",0,14));
             console.log(buf.toString("utf-8",0,14))
         })

     }
 });*/


/* fs.openSync()同步读取文件  返回 文件的 字节长度。

 var fd=fs.openSync("./1.txt","r");
 var buf=Buffer.alloc(15);
 var buffer=fs.readSync(fd,buf,0,12,null);
 console.log(buffer);
* */


/*
*  fs.write(fd,buffer,offset,length,position,callback);  异步写入的第一种方式。
*
* fs.open("./1.txt","r+",function (err,fd) {
 var buf=Buffer.from("this");
 var len=buf.length;
 fs.write(fd,buf,1,2,12,function (err,written,str) {
 console.log(err);
 console.log(written);
 console.log(str.toString());

 })
 });
* 
* */

/*
*   fs.write(fd,string,position,encoding,callback); 异步写入的第二种方式。
 fs.open("./1.txt","r+",function (err,fd) {
 if(err){
 console.log(err);
 }else{
 fs.write(fd,"123456",12,"utf-8",function (err,byWriteLen,buffer) {
 console.log(err);
 console.log(byWriteLen);
 console.log(buffer);
 })
 }
 });
* */


/*
 fs.writeSync(fd,buffer,offset,length,position);
 fs.open("./1.txt","r+",function (err,fd) {
 if(err){
 console.log(err);
 } else{
 var buf=Buffer.from("你好！");
 var len=fs.writeSync(fd,buf,0,buf.length,20);
 console.log(len);
 }
 });
* */



/*
 fs.writeSync(fd,string,position,encoding); 同步写入 第二种方式。

 fs.open("./1.txt","r+",function (err,fd) {
 if(err){
 console.log(err);
 }else{
 var bLen= fs.writeSync(fd,"asdf",25,"utf-8");
 console.log(bLen);
 }
 });

* */

/*
*  fs.closeSync(fd);
*   var fd=fs.openSync("./1.txt","r+");
*   fs.writeSync(fd,"789",40,"utf-8");
*   fs.closeSync(fd);
*   console.log("文件关闭成功！");
*   fs.writeSync(fd,"789",60,"utf-8");
* */

 /*
 *   fs.writeFile(path,data,encoding,callback) 异步写入文件。
 *     fs.writeFile("./2.txt","hello",function (err) {
  if(err){
  throw err;
  }
  console.log("写入成功！");
  });
 * */

/*
*  fs.writeFileSync("./3.txt","你好"); 同步写入数据
*    fs.writeFileSync("./3.txt","你好");
* */


/*   异步添加数据
*   fs.appendFile("./4.txt","添加数据",function (err) {
 if(err){
 throw err;
 }
 console.log("添加成功！")
 });
* */

/*
*  同步添加数据
*  fs.appendFileSync("./4.txt","1234")
* */



/*
 同步 判断 文件是否存在
 fs.existsSync("./1.txt")

 if(fs.existsSync("./6.txt")){
 fs.appendFile("./6.txt","我要添加数据",function (err) {
 if(err){
 throw err;
 }else{
 console.log("添加成功！")
 }
 })
 }else{
 fs.writeFile("./6.txt","我要写入数据",function (err) {
 if(err){
 throw err;
 }else{
 console.log("写入成功！")
 }
 })
 }

 * */








/*
fs.stat("./6.txt",function (err, stats) {
 console.log(err);
 console.log(stats);
})


 fs.access("./6.txt",function (err) {

 })
*/

/*
    异步读取文件
 fs.readFile("./3.txt",function (err,data) {
 if(err){
 throw err;
 }else{
 console.log(data.toString());
 }
 });
* */


/*
*   同步读取文件：
*    var data=fs.readFileSync("./6.txt");
 console.log(data.toString())
* */




/*
*  异步删除文件
*
*  fs.unlink("./1.txt",function (err) {
 if(err){
 console.log(err);
 }
 console.log("删除成功！");
 });
* */


/*
* 同步删除文件
* fs.unlinkSync("./2.txt");
* */


 /*
  异步文件 重命名 fs.rename(oldPath,newPath,callback)

  fs.rename("./6.txt","./5.txt",function (err) {
  if(err){
  console.log("重命名失败！")
  }else{
  console.log("重命名成功！")
  }
  });
 * */


 /*
 *  同步文件重命名  fs
 *   fs.renameSync("./3.txt","./2.txt");
 *
 * */

/*
  读取文件信息！ fs.stat(path,callback)

 fs.stat("./2.txt",function (err, stats) {
 console.log(stats)
 });
 var stats=fs.statSync("./2.txt");
 console.log(stats);
 * */

/*
*  监听文件变化
*   fs.watch(filename,[options],listener)
*
*   fs.watch("./2.txt",function (event,filename) {
 console.log(event);
 if(filename){
 console.log(filename+":发生了改变！")
 } else{
 console.log(filename+":监测不到！")
 }
 });
*   
* */



/*---------------fs操作文件夹------------------*/
/*
*  fs.mkdir() //异步创建文件夹
*
*    fs.mkdir("./zyca",function (err) {
 if(err){
 console.log(err)
 }else{
 console.log("文件夹创建成功！");
 }
 });
* */

/*
    同步创建文件夹 fs.mkdirSync();
 fs.mkdirSync("../qw");
* */


/*
 fs.rmdir();异步删除文件夹。

 fs.rmdir("./qw",function (err) {
 if(err){
 throw err
 }else{
 console.log("文件夹删除成功！")
 }
 });
* */




fs.stat("./zyca",function (err,data) {
     console.log(err);
     console.log(data);
});

